[C - Socket] UDP SERVER
Publicado por Enzo de Brito Ferber 10/03/2006
[ Hits: 10.669 ]
Homepage: http://www.maximasonorizacao.com.br
Este script testei na minha
propria máquina em terminas
diferentes, mas creio eu que
funcionará em uma rede local.
Como fazer funcionar:
Compile o script:
cc -o server server.c
Abra um terminal (xterm)
Execute o servidor.
Abra outro terminal (xterm)
Execute o cliente
P.S.: O cliente está em outro
link
#include <stdio.h>
#include <stdlib.h>
#include <netdb.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <netinet/in.h>
#define PORT 3456
#define MAX_CONNECTS_TRY 10
int main(int argc, char *argv[]){
int fd1, fd2;
int num_b;
int bind_return;
int listen_return;
int sin_size; //para passar endereco para funcao accept()
int msg_size;
char msg[100];
char hostname[30];
struct sockaddr_in client;
struct sockaddr_in host;
gethostname(hostname, 30);
printf("Seu HOSTNAME: %s\n\n", hostname);
fd1 = socket(AF_INET, SOCK_DGRAM, 0);
if(fd1 == -1){
perror("socket");
exit(1);
}
client.sin_family = AF_INET;
client.sin_port = htons(PORT);
client.sin_addr.s_addr = INADDR_ANY; //poe o endeco do meu computador automaticamente
bind_return = bind(fd1, (struct sockaddr *)&client, sizeof(struct sockaddr));
if(bind_return == -1){
perror("bind");
exit(1);
}
while(strcmp("exit", msg) != 0){
memset(msg, 0x0, 100);
sin_size = sizeof(host);
msg_size = recvfrom(fd1, msg, 100, 0, (struct sockaddr *)&host, &sin_size);
printf("Mensagem de:%s: %s\n", inet_ntoa(host.sin_addr), msg);
}
}
Calcular Broadcast e IPs disponíveis
Simples servidor http com concorrência feito em C
Nenhum comentário foi encontrado.
Gentoo: detectando impressoras de rede e como fixar uma impressora por IP
Como o GNOME conseguiu o feito de ser preterido por outras interfaces gráficas
Gentoo binário em 2026: UEFI, LUKS, Btrfs e Systemd
Trabalhando Nativamente com Logs no Linux
Jogando Daikatana (Steam) com Patch 1.3 via Luxtorpeda no Linux
Por que sua empresa precisa de uma PKI (e como automatizar EMISSÕES de certificados via Web API)
Instalando NoMachine no Gentoo com Systemd (acesso Remoto em LAN)
Gentoo: Trocando wpa_supplicant pelo iwd no NetworkManager (Systemd)
Necessário autenticar ao imprimir - Ubuntu X Windowns (1)
O que houve com slackware ??? (11)
O Free Download Manager não abre no Fedora 43 KDE Plasma (2)









